package net.oschina.bilbodai.common.beanutil.reflection;

import java.lang.reflect.Field;

/**
 * @author daimao  Date: 2016/12/27 Time: 下午2:43
 * @version $Id$
 */
public interface FieldCallback {

    /**
     * 当前Field是否符合条件
     *
     * @param field     field
     * @param fieldType 字段类型
     * @return 是否满足条件
     */
    boolean match(Field field, Class<?> fieldType);

    /**
     * @param field     当前查找的field
     * @param fieldType 字段类型
     * @param superPath 从上层到这个属性所在的类的属性路径如 {@code foo.bar}
     * @param path      从上层到这个属性所在的路径如 {@code foo.bar.name}
     */
    void onFieldFound(Field field, Class<?> fieldType, String superPath, String path);
}
